/**
 * Project Name:gc.sms.mvn
 * File Name:TreeBean.java
 * Package Name:com.clps.dev.sms.util.Tree
 * @date 2018-12-10 11:50:43 
 * Copyright (c) 2018, www.clpsglobal.com All Rights Reserved.
 *
 */
package com.clps.dev.sms.util.tree;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName: TreeBean <br/><br/>
 * @Description: <br/><br/>
 *
 * @date 2018-12-10 11:50:43  <br/>
 *
 * @author long.ma
 * @version V1.0
 * @since JDK 1.8
 */
public class TreeBean<T> implements Serializable{

	/**
	 * serialVersionUID:
	 * @since JDK 1.8
	 */
	private static final long serialVersionUID = 1L;
	
	private String nodeId;        //节点id
	private String nodeParentId;       //父节点id
	private String nodeName;      //节点名称
	private String nodeIcon;      //节点图标
	private String nodeUrl;       //点击节点时触发的链接
	private String nodeDescription; //节点的描述
	private String nodeCreatedEmployeeId;  //节点创建人id
	private String nodeCreatedTime;  //节点创建时间
	private Boolean nodeOnOff;     //节点是否打开
	private List<TreeBean<T>> nodeChildren;  //子节点
	
	/**
	 * Creates a new instance of TreeBean.
	 *
	 */

	public TreeBean() {
		 
	}

	

	/**
	 * Creates a new instance of TreeBean.
	 *
	 * @param nodeId
	 * @param nodeParentId
	 * @param nodeName
	 * @param nodeIcon
	 * @param nodeUrl
	 * @param nodeDescription
	 * @param nodeCreatedEmployeeId
	 * @param nodeCreatedTime
	 * @param nodeOnOff
	 * @param nodeChildren
	 */
	
	public TreeBean(String nodeId, String nodeParentId, String nodeName, String nodeIcon, String nodeUrl,
			String nodeDescription, String nodeCreatedEmployeeId, String nodeCreatedTime, Boolean nodeOnOff,
			List<TreeBean<T>> nodeChildren) {
		super();
		this.nodeId = nodeId;
		this.nodeParentId = nodeParentId;
		this.nodeName = nodeName;
		this.nodeIcon = nodeIcon;
		this.nodeUrl = nodeUrl;
		this.nodeDescription = nodeDescription;
		this.nodeCreatedEmployeeId = nodeCreatedEmployeeId;
		this.nodeCreatedTime = nodeCreatedTime;
		this.nodeOnOff = nodeOnOff;
		this.nodeChildren = nodeChildren;
	}



	/**
	 * nodeId.
	 *
	 * @return  the nodeId
	 * @since   JDK 1.8
	 */
	public String getNodeId() {
		return nodeId;
	}

	/**
	 * nodeId.
	 *
	 * @param   nodeId    the nodeId to set
	 * @since   JDK 1.8
	 */
	public void setNodeId(String nodeId) {
		this.nodeId = nodeId;
	}

	/**
	 * nodeParentId.
	 *
	 * @return  the nodeParentId
	 * @since   JDK 1.8
	 */
	public String getNodeParentId() {
		return nodeParentId;
	}

	/**
	 * nodeParentId.
	 *
	 * @param   nodeParentId    the nodeParentId to set
	 * @since   JDK 1.8
	 */
	public void setNodeParentId(String nodeParentId) {
		this.nodeParentId = nodeParentId;
	}

	/**
	 * nodeName.
	 *
	 * @return  the nodeName
	 * @since   JDK 1.8
	 */
	public String getNodeName() {
		return nodeName;
	}

	/**
	 * nodeName.
	 *
	 * @param   nodeName    the nodeName to set
	 * @since   JDK 1.8
	 */
	public void setNodeName(String nodeName) {
		this.nodeName = nodeName;
	}

	/**
	 * nodeIcon.
	 *
	 * @return  the nodeIcon
	 * @since   JDK 1.8
	 */
	public String getNodeIcon() {
		return nodeIcon;
	}

	/**
	 * nodeIcon.
	 *
	 * @param   nodeIcon    the nodeIcon to set
	 * @since   JDK 1.8
	 */
	public void setNodeIcon(String nodeIcon) {
		this.nodeIcon = nodeIcon;
	}

	/**
	 * nodeUrl.
	 *
	 * @return  the nodeUrl
	 * @since   JDK 1.8
	 */
	public String getNodeUrl() {
		return nodeUrl;
	}

	/**
	 * nodeUrl.
	 *
	 * @param   nodeUrl    the nodeUrl to set
	 * @since   JDK 1.8
	 */
	public void setNodeUrl(String nodeUrl) {
		this.nodeUrl = nodeUrl;
	}
	
	

	/**
	 * nodeDescription.
	 *
	 * @return  the nodeDescription
	 * @since   JDK 1.8
	 */
	public String getNodeDescription() {
		return nodeDescription;
	}



	/**
	 * nodeDescription.
	 *
	 * @param   nodeDescription    the nodeDescription to set
	 * @since   JDK 1.8
	 */
	public void setNodeDescription(String nodeDescription) {
		this.nodeDescription = nodeDescription;
	}



	/**
	 * nodeCreatedEmployeeId.
	 *
	 * @return  the nodeCreatedEmployeeId
	 * @since   JDK 1.8
	 */
	public String getNodeCreatedEmployeeId() {
		return nodeCreatedEmployeeId;
	}



	/**
	 * nodeCreatedEmployeeId.
	 *
	 * @param   nodeCreatedEmployeeId    the nodeCreatedEmployeeId to set
	 * @since   JDK 1.8
	 */
	public void setNodeCreatedEmployeeId(String nodeCreatedEmployeeId) {
		this.nodeCreatedEmployeeId = nodeCreatedEmployeeId;
	}



	/**
	 * nodeCreatedTime.
	 *
	 * @return  the nodeCreatedTime
	 * @since   JDK 1.8
	 */
	public String getNodeCreatedTime() {
		return nodeCreatedTime;
	}



	/**
	 * nodeCreatedTime.
	 *
	 * @param   nodeCreatedTime    the nodeCreatedTime to set
	 * @since   JDK 1.8
	 */
	public void setNodeCreatedTime(String nodeCreatedTime) {
		this.nodeCreatedTime = nodeCreatedTime;
	}



	/**
	 * nodeOnOff.
	 *
	 * @return  the nodeOnOff
	 * @since   JDK 1.8
	 */
	public Boolean getNodeOnOff() {
		return nodeOnOff;
	}

	/**
	 * nodeOnOff.
	 *
	 * @param   nodeOnOff    the nodeOnOff to set
	 * @since   JDK 1.8
	 */
	public void setNodeOnOff(Boolean nodeOnOff) {
		this.nodeOnOff = nodeOnOff;
	}

	/**
	 * nodeChildren.
	 *
	 * @return  the nodeChildren
	 * @since   JDK 1.8
	 */
	public List<TreeBean<T>> getNodeChildren() {
		return nodeChildren;
	}

	/**
	 * nodeChildren.
	 *
	 * @param   nodeChildren    the nodeChildren to set
	 * @since   JDK 1.8
	 */
	public void setNodeChildren(List<TreeBean<T>> nodeChildren) {
		this.nodeChildren = nodeChildren;
	}
	

	/**
	 * serialversionuid.
	 *
	 * @return  the serialversionuid
	 * @since   JDK 1.8
	 */
	public static long getSerialversionuid() {
		return serialVersionUID;
	}



	/**
	 *
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((nodeChildren == null) ? 0 : nodeChildren.hashCode());
		result = prime * result + ((nodeCreatedEmployeeId == null) ? 0 : nodeCreatedEmployeeId.hashCode());
		result = prime * result + ((nodeCreatedTime == null) ? 0 : nodeCreatedTime.hashCode());
		result = prime * result + ((nodeDescription == null) ? 0 : nodeDescription.hashCode());
		result = prime * result + ((nodeIcon == null) ? 0 : nodeIcon.hashCode());
		result = prime * result + ((nodeId == null) ? 0 : nodeId.hashCode());
		result = prime * result + ((nodeName == null) ? 0 : nodeName.hashCode());
		result = prime * result + ((nodeOnOff == null) ? 0 : nodeOnOff.hashCode());
		result = prime * result + ((nodeParentId == null) ? 0 : nodeParentId.hashCode());
		result = prime * result + ((nodeUrl == null) ? 0 : nodeUrl.hashCode());
		return result;
	}



	/**
	 *
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		@SuppressWarnings("unchecked")
		TreeBean<T> other = (TreeBean<T>) obj;
		if (nodeChildren == null) {
			if (other.nodeChildren != null)
				return false;
		} else if (!nodeChildren.equals(other.nodeChildren))
			return false;
		if (nodeCreatedEmployeeId == null) {
			if (other.nodeCreatedEmployeeId != null)
				return false;
		} else if (!nodeCreatedEmployeeId.equals(other.nodeCreatedEmployeeId))
			return false;
		if (nodeCreatedTime == null) {
			if (other.nodeCreatedTime != null)
				return false;
		} else if (!nodeCreatedTime.equals(other.nodeCreatedTime))
			return false;
		if (nodeDescription == null) {
			if (other.nodeDescription != null)
				return false;
		} else if (!nodeDescription.equals(other.nodeDescription))
			return false;
		if (nodeIcon == null) {
			if (other.nodeIcon != null)
				return false;
		} else if (!nodeIcon.equals(other.nodeIcon))
			return false;
		if (nodeId == null) {
			if (other.nodeId != null)
				return false;
		} else if (!nodeId.equals(other.nodeId))
			return false;
		if (nodeName == null) {
			if (other.nodeName != null)
				return false;
		} else if (!nodeName.equals(other.nodeName))
			return false;
		if (nodeOnOff == null) {
			if (other.nodeOnOff != null)
				return false;
		} else if (!nodeOnOff.equals(other.nodeOnOff))
			return false;
		if (nodeParentId == null) {
			if (other.nodeParentId != null)
				return false;
		} else if (!nodeParentId.equals(other.nodeParentId))
			return false;
		if (nodeUrl == null) {
			if (other.nodeUrl != null)
				return false;
		} else if (!nodeUrl.equals(other.nodeUrl))
			return false;
		return true;
	}



	/**
	 *
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "TreeBean [nodeId=" + nodeId + ", nodeParentId=" + nodeParentId + ", nodeName=" + nodeName
				+ ", nodeIcon=" + nodeIcon + ", nodeUrl=" + nodeUrl + ", nodeDescription=" + nodeDescription
				+ ", nodeCreatedEmployeeId=" + nodeCreatedEmployeeId + ", nodeCreatedTime=" + nodeCreatedTime
				+ ", nodeOnOff=" + nodeOnOff + ", nodeChildren=" + nodeChildren + "]";
	}

	
 
	

	

	
}
